package com.live.service.interfaced.impl;


import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.live.service.interfaced.LiveInManager;
import com.system.dao.DaoSupport;
import com.system.util.PageData;


/**  直播接口实现类
@Function
@Author 于泓磊
@Date   2018年1月19日
*/
@Service("liveInService")
public class LiveInService implements LiveInManager{

	@Resource(name = "daoSupport")
	private DaoSupport dao;

	
	/**
	 * 获取直播分类集合
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getLiveTypeList(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("LiveTypeInMapper.getLiveTypeList", pd);
	}

    /**
     * 根据当前要开播用户获取所有开播信息
     */
	@Override
	public PageData getLiveOnlineById(PageData pd) throws Exception {
		return (PageData) dao.findForObject("LiveTypeInMapper.getLiveOnlineById", pd);
	}


	/**
	 * 当主播开播时,将主播信息添加到数据库
	 */
	@Override
	public void addLiveOnline(PageData pd) throws Exception {
		dao.save("LiveTypeInMapper.saveLiveOnline", pd);
	}

	/**
	 * 将主播的StreamName放入数据库
	 * @param pd
	 * @throws Exception
	 */
	@Override
	public void updStreamName(PageData pd) throws Exception {
          dao.update("LiveTypeInMapper.updStreamName", pd);		
	}

	
	/**
	 * 根据StreamName获取封面地址
	 */
	@Override
	public PageData getLiveCoverTitle(PageData pd) throws Exception {
		return (PageData) dao.findForObject("LiveTypeInMapper.getLiveCover", pd);
	}

	
	/**
	 * 当主播开播时,修改主播信息到数据库
	 */
	@Override
	public void updLiveOnline(PageData pd) throws Exception {
		dao.update("LiveTypeInMapper.updLiveOnline", pd);
		
	}

	/**
	 * 当主播开播时,检查数据库有无当前主播开播记录
	 */
	@Override
	public PageData getCountByUserId(PageData pd) throws Exception {
		return (PageData) dao.findForObject("LiveTypeInMapper.getCountByUserId", pd);
	}

	/**
	 * 获取所有在直播主播的经纬度
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getNearByPerson(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("LiveTypeInMapper.getNearByPerson", pd);
	}

	
	/**
	 * 修改当前用户直播状态(0为未直播,1为直播)
	 */
	@Override
	public void updUserOnline(PageData pd) throws Exception {
		dao.update("LiveTypeInMapper.updUserOnline", pd);
	}

	/**
	 * 筛选中开播呗筛选接口
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getScreenList(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("LiveTypeInMapper.getScreenList", pd);
	}

	/**
	 * 查询当前用户的黑咖币数量是否大于扣除数量 
	 */
	@Override
	public PageData getBlackCoin(PageData pd) throws Exception {
		return (PageData) dao.findForObject("LiveTypeInMapper.getBlackCoin", pd);
	}

	/**
	 * 对用户的黑咖币数量进行操作(增加或者减少)
	 */
	@Override
	public void updBlackCoin(PageData pd) throws Exception {
		dao.update("LiveTypeInMapper.updBlackCoin", pd);
	}

	/**
	 * 直播个人资料上部分个人资料接口
	 */
	@Override
	public PageData getUserData(PageData pd) throws Exception {
		return (PageData) dao.findForObject("LiveTypeInMapper.getUserData", pd);
	}

	/**
	 * 直播个人资料下部分资料接口
	 */
	@Override
	public PageData getDownUserData(PageData pd) throws Exception {
		return (PageData) dao.findForObject("LiveTypeInMapper.getDownUserData", pd);
	}

	/**
	 * 直播页面点击头像显示的简洁个人资料 
	 */
	@Override
	public PageData getPithyData(PageData pd) throws Exception {
		return (PageData) dao.findForObject("LiveTypeInMapper.getPithyData", pd);
	}

	
	/**
	 * 直播页中'我的'页面接口
	 */
	@Override
	public PageData getMineData(PageData pd) throws Exception {
		return  (PageData) dao.findForObject("LiveTypeInMapper.getMineData", pd);
	}

	/**
	 * 获取用户粉丝的列表
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getFansList(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("LiveTypeInMapper.getFansList", pd);
	}

	/**
	 * 获取用户关注的列表
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getFocusList(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("LiveTypeInMapper.getFocusList", pd);
	}

	/**
	 * 用户更新签到记录接口
	 */
	@Override
	public void updCheckIn(PageData pd) throws Exception {
		dao.update("LiveTypeInMapper.updCheckIn", pd);
	}

	/**
	 * 用户添加签到记录接口
	 */
	@Override
	public void addCheckIn(PageData pd) throws Exception {
		dao.save("LiveTypeInMapper.addCheckIn", pd);
	}

	/**
	 * 查询签到库中有无该用户签到记录
	 */
	@Override
	public PageData getCheckIn(PageData pd) throws Exception {
		return (PageData) dao.findForObject("LiveTypeInMapper.getCheckIn", pd);
	}

	/**
	 * 获取该用户签到日期及连续签到天数接口
	 */
	@Override
	public PageData getCheckInlog(PageData pd) throws Exception {
		return (PageData) dao.findForObject("LiveTypeInMapper.getCheckInLog", pd);
	}

	/**
	 * 对排行榜数据进行更新
	 */
	@Override
	public void updRankingList(PageData pd) throws Exception {
		dao.update("LiveTypeInMapper.updRankingList", pd);
	}

	/**
	 * 对排行榜数据进行添加
	 */
	@Override
	public void addRankingList(PageData pd) throws Exception {
        dao.save("LiveTypeInMapper.addRankingList", pd);		
	}

	
	
	/**
	 *查看该用户在排行榜中是否存在给某个主播送礼的记录
	 */
	@Override
	public PageData isExistRanking(PageData pd) throws Exception {
        return (PageData) dao.findForObject("LiveTypeInMapper.isExistRanking", pd);		
	}

	
	/**
	 *获得某个主播总榜单
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> getRankingList(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("LiveTypeInMapper.getRankingList", pd);
	}

	/**
	 *任务中心用户任务完成情况    
	 */
	@Override
	public PageData getTaskStatus(PageData pd) throws Exception {
		return (PageData) dao.findForObject("LiveTypeInMapper.getTaskStatus", pd);
	}

	/**
	 *修改任务中心用户任务完成情况    
	 */
	@Override
	public void updTaskStatus(PageData pd) throws Exception {
		dao.update("LiveTypeInMapper.updTaskStatus", pd);
	}

	
	
	
	
	
	
}

